package com.swpu.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket webApiConfig() {

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("后台开放Api")
                .enable(true)  //是否启用swagger
                .apiInfo(webApiInfo())
                .select()
                //RequestHandlerSelectors:配置要扫描接口的方式
                //basePackage:指定要扫描的包
                //any(): 扫描全部
                //none():不扫描
                //withClassAnnotation:扫描类上的注解，参数是一个注解的反射对象
                //withMethodAnnotation:扫描方法上的注解
                //过滤什么路径
//                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))   //过滤掉后台页面和error页面
//                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();

    }

    //配置swagger信息=apiInfo
    private ApiInfo webApiInfo() {

        return new ApiInfoBuilder()
                .title("开发API文档")
                .description("本文档描述了软件研发接口定义")
                .version("1.0")
                //自定义作者，链接，邮箱
                .contact(new Contact("阳阳阳", "http://www.baidu.com", "2404438248@qq.com"))
                .build();
    }
}
